A computer network typically comprises a plurality of computers and software and hardware that facilitate interaction between at least two computers in order to provide a fast, efficient and cost effective means to obtain and/or exchange information. In many instances, other microprocessor-based devices such as printers, plotters, scanners, facsimile machines, databases, and servers are coupled to the network, via a direct connection or through another device, to provide additional capabilities and/or enhance user experience. The above-noted benefits typically are exploited by corporations, medical facilities, businesses, the government, and educational facilities, for example, wherein various types of computer networks are employed to improve everyday tasks such as correspondence (e.g., via email, instant messaging and chat rooms), documentation, problem solving, mathematical computation, scheduling, planning, budgeting, reporting, and information gathering.
The various types of computer networks usually are categorized and differentiated through characteristics such as size and user base, topology, and architecture. Two commonly utilized categorizations include Local Area Network (LAN) and Wide Area Network (WAN). A LAN generally is associated with a relatively small geographic area such a department, building or group of buildings, and employed to connect local workstations, personal computers, printers, copiers, scanners, etc. A WAN typically is associated with networks that span large geographical areas, and can include one or more smaller networks, such as one or more LANs. For example, a WAN can be employed to a couple computers and/or LANs that reside on opposite ends of a country and/or world. The most popular WAN today is the Internet.
Increased demand for user configurable networks that enable a user to personalize a network to meet particular user needs and/or to optimize such networks for particular environments has lead to further, but lesser known, user base delineations. For example, campus area networks (CANs) typically are associated with universities or military bases, wherein a user groups with similar and specialized needs (e.g., educational, training, etc.) exists within a limited base. Metropolitan area networks (MANs) are designed for townships, cities, counties, etc., wherein the needs of the user group are generic, but common to the locality. Home area networks (HANs) are becoming more and more popular and provide a home owner a mechanism to couple, control and monitor utilities (e.g., lighting and temperature), entertainment centers (e.g., audio and video systems) and security (e.g., alarm and CCD cameras) systems.
Common computer network topologies include bus, ring and star. With a bus topology, a central channel or backbone (the bus) couples computers and/or devices on the network. Computers coupled to the network can communicate directly with one another over the bus. In a ring topology, computers and/or devices are coupled as a closed loop. Thus, information may travel through several computers in order to convey information from one computer to another. Computers within a star topology are connected to a central computer such that any communication between computers occurs via the central computer.
Architectural differentiation includes a peer-to-peer and client-server networks. With a peer-to-peer architecture, computers are connected to one another (e.g., via a hub) and share the same level of access on the network. In addition, the computers can be configured with security levels and/or sharing rights such that files can be directly accessed and shared peer-to-peer, or between computers. In contrast, a client-server network comprises at least one client machine, which can be a user's computer, and a server, which typically is employed to store and execute shared applications. One advantage of employing a client-server configuration is that it can free local disk space on clients by providing a central location for file storage and execution.
Client-server architectures are particularly useful with database systems, wherein volumes of information can be stored (e.g., via a plurality of tables) within a server(s) that can be accessed by a client via a query. Conventional and legacy client-server systems typically are synchronous systems, wherein the client transmits a synchronous request that is synchronously serviced by the server. Demand for greater quantities of information, increased data rates and multi-request capabilities lead to the development of various server-side processing improvements such as asynchronous and parallel processing. However, in order for such techniques to be employed in connection with clients that communicate synchronously (e.g., submit synchronous requests and expect synchronous results), clients are required to implement routines that can receive a plurality of asynchronous results on the client-side. Such client-side routines manage mapping results to a corresponding query and combing such results to simulate synchronous processing; and thus, can consume client processing cycles and memory, and add to client overhead.